#ifndef __DEFER_H__
#define __DEFER_H__

#include <boost/utility.hpp>
#include <boost/function.hpp>

/*
 * @brief Defer 用于推迟一个函数执行时间到调用函数的 return 前
 */
namespace mars {

class Defer : boost::noncopyable {
    public:
        typedef boost::function<void ()> Func;
        Defer(const Func &func);
        ~Defer();

    private:
        Func _func;
};


} //namespace mars


#endif //__DEFER_H__
